[VPC Peering] 異なるAWSアカウントでのVPCピア接続を試してみた
初めに
AWSチームの鈴木です。
Amazon VPCでは、ピア接続(VPC Peering)により、 同一リージョンで、異なるIP帯域のVPCを接続し、相互通信を行う事が可能です。
参考:Amazon VPC Peeringの技術的考察と留意点
またVPCピア接続は、異なるAWSアカウント間で実施する事も可能です。 この際、ピア接続先となるAWSアカウントでの承認手続きが必要となりますが、その承認を含む手順について紹介します。
想定環境
アカウント
アカウントID | 0000111122223333 |
---|---|
VPC ID | vpc-aaaaaaa |
VPC CIDR | 192.168.16.0/20 |
セグメントA-1 | 192.168.20.0/24 |
セグメントA-2 | 192.168.21.0/24 |
アカウントB
アカウントID | 4444555566667777 |
---|---|
VPC ID | vpc-bbbbbbb |
VPC CIDR | 172.23.0.0/16 |
セグメントB-1 | 172.23.252.0/24 |
セグメントB-2 | 172.23.253.0/24 |
構成図
手順
アカウントA
VPCピアリング作成
- AWSコンソールの「VPCダッシュボード」より、「ピアリング接続」を開きます
- 「VPCピア接続の作成」を実行します
* 「ネームタグ」はVPCピア接続の任意の名称を付与します * 「ピア接続するローカル VPC」として、「192.168.16.0/20」を含むVPCを指定します * 「ピア接続する VPC」は、「別のアカウント」を指定します * 「アカウントID」は、ピア接続先のアカウントIDを入力します * 「VPC ID」は、ピア接続先のVPCIDを入力します * AWSの「アカウントID」は、AWSコンソール上で確認可能な数値です
- 「ステータス」として「Pending Acceptance by ...」となったことを確認します
アカウントB
VPCピアリングの承諾
- アカウントBのAWSコンソールの「VPCダッシュボード」より、「ピアリング接続」を開きます
- 「ステータス」として「Pending Acceptance by」となっている設定をチェック、意図したピア接続元であることを確認し、「リクエストの承諾」を行います。
ルーティングテーブル
- アカウントBのAWSコンソールの「VPCダッシュボード」より、「ルートテーブル」を開きます
- ピア接続対象のVPCに絞り込み、ピア接続対象のセグメントを含む「ルートテーブル」を選択します
- 「ルート」タブより、「別ルートの追加」を行い、VPCピアリング先のネットワーク(IP帯域)を入力、ターゲットは「pcx-」で始まるVPCピア接続を指定し、保存します
セキュリティグループ設定
- Outbound通信を「Any」許可、Inboundの通信を特定ネットワークのみ許可している場合、VPCピア接続先の「192.168.20.0/24,192.168.21.0/24」のネットワークを追加します。
アカウントA
- アカウントAもルーティング設定が必要です。
ルーティングテーブル
- 「ルート」タブより、「別ルートの追加」を行い、VPCピアリング先のネットワーク(IP帯域)を入力、ターゲットは「pcx-」で始まるVPCピア接続を指定し、保存します
まとめ
異なるAWSアカウントでのVPCピア接続、途中で承認手続きが発生しますが、同一アカウント内と同様の手順での設定が可能です。 開発ベンダが異なるシステム、連携部分をVPCピア接続する事により、密結合を避ける効果などが期待できます。
ただし、2015年7月現在のCloudFormation「VPCPeeringConnection」としてテンプレートに記述する事は可能ですが、異なるAWSアカウント間のピア接続には未対応となりますので、ご注意ください。
参考:公式ドキュメント AWS::EC2::VPCPeeringConnection
With AWS CloudFormation, you can create a peering connection only between VPCs in the same AWS account. You cannot create a peering connection with another AWS account.
VPCピア接続の注意
昨晩時間切れで記載出来なかった内容、及び本日メンバより指摘のあった事項について追記します。(7/8)
NW重複
CIDRブロックが一部でも重複する場合、VPCピア接続はできません。
リージョン
VPCピア接続は、同一リージョン間のみ設定可能です。
- 2018年2月 異なるリージョン間のVPCピア接続が可能になりました。 https://dev.classmethod.jp/cloud/aws/inter-region-vpc-peering-available-tokyo/
上限緩和
VPCピア接続数、初期50に制限されています。 上限緩和によりピア接続の拡張は可能ですが、最大は125までとなります。 また上限緩和を実施した場合、ネットワーク性能への影響が出る場合があるとされているため、ネットワーク設計は計画的に実施してください。
MTU
VPCピア接続のMTUは1500となります。 ビックパケットを利用可能なEC2環境を、VPCピア接続経由で利用する場合ご注意ください。
プライベートDNS
Route53で利用出来る、Private Hosted Zone、2015年7月現在、VPCピアリング経由で利用する事ができません。 ELBやEC2にCNAMEを付与する場合、グローバルのHosted Zoneを利用してください。
- 2016年8月 VPCピア接続経由でプライベートIPの名前解決が可能となりました。 https://dev.classmethod.jp/cloud/aws/resolving-private-ip-address-from-vpc-peering/
RDS、Redshift
Publicly Accessibleが「Yes」となった、RDS、RedshiftをVPCピア接続で利用する場合、利用制限があります。
料金
VPCピア接続に固定費用は発生しません。
ただし、VPC ピア接続を利用した通信は同一アベイラビリティーゾーンであっても、パブリックIPアドレスを利用した場合や、異なるアベイアビリティゾーン間のデータ転送と同じ料金(2015年7月現在$0.01/GB)が適用されます。TB単位のデータをVPCピア接続で転送する際にはご注意ください。